// 切换子菜单显示/隐藏
function toggleSubMenu(element, event) {
    // 找到父级menu-item元素，然后找到其后面的sub-menu
    const menuItem = element.closest('.menu-item')
    if (!menuItem) {
        console.error('未找到父级menu-item元素')
        return
    }
    const subMenu = menuItem.nextElementSibling
    const toggleIcon = element.querySelector('.menu-toggle')
    
    if (subMenu && toggleIcon) {
        subMenu.classList.toggle('show')
        toggleIcon.classList.toggle('rotate')
    }
    
    // 阻止事件冒泡，避免触发openContent函数
    if (event) {
        event.stopPropagation()
    }
}

// 打开对应内容区域
function openContent(contentId) {
    try {
        // 隐藏所有内容区域
        const sections = document.querySelectorAll('.content-section')
        sections.forEach(section => {
            section.classList.remove('active')
        })
        
        // 显示选中的内容区域
        const activeSection = document.getElementById(contentId)
        if (activeSection) {
            activeSection.classList.add('active')
        } else {
            console.error('未找到内容区域:', contentId)
            return
        }
        
        // 更新菜单激活状态
        const allMenuItems = document.querySelectorAll('.menu-item, .sub-menu-item')
        allMenuItems.forEach(item => {
            item.classList.remove('active')
        })
        
        // 找到对应的子菜单项并激活
        let foundMatchingItem = false
        const subMenuItems = document.querySelectorAll('.sub-menu-item')
        subMenuItems.forEach(item => {
            // 精确匹配内容ID，避免部分匹配导致的错误激活
            const onclickAttr = item.getAttribute('onclick')
            const expectedOnclick = "openContent('" + contentId + "')"
            if (onclickAttr === expectedOnclick) {
                foundMatchingItem = true
                item.classList.add('active')
                // 确保父菜单项是展开状态，但不激活它
                const parentMenuGroup = item.closest('.menu-group')
                if (parentMenuGroup) {
                    const parentMenuItem = parentMenuGroup.querySelector('.menu-item')
                    if (parentMenuItem) {
                        // 确保父菜单项是展开状态
                        const subMenu = parentMenuItem.nextElementSibling
                        const toggleIcon = parentMenuItem.querySelector('.menu-toggle')
                        if (subMenu && toggleIcon) {
                            subMenu.classList.add('show')
                            toggleIcon.classList.add('rotate')
                        }
                    }
                }
            }
        })
        
        // 只有在没有找到匹配的子菜单项时，才处理一级菜单项（如"关于我们"）
        if (!foundMatchingItem) {
            const menuItems = document.querySelectorAll('.menu-item')
            menuItems.forEach(item => {
                const onclickAttr = item.getAttribute('onclick')
                const expectedOnclick = "openContent('" + contentId + "')"
                if (onclickAttr === expectedOnclick) {
                    item.classList.add('active')
                }
            })
        }
    } catch (e) {
        console.error('打开内容区域时出错:', e)
    }
}

// JSON格式化功能
function formatJson() {
    const jsonInput = document.getElementById('json-input').value
    const resultElement = document.getElementById('json-result')
    const copyButton = document.getElementById('copy-button')
    
    if (!jsonInput.trim()) {
        resultElement.innerHTML = '<span style="color: #666;">请输入JSON字符串</span>'
        copyButton.disabled = true
        return
    }
    
    try {
        // 解析JSON
        const parsedJson = JSON.parse(jsonInput)
        // 格式化JSON，缩进为2个空格
        const formattedJson = JSON.stringify(parsedJson, null, 2)
        // 创建可展开/收缩的JSON显示
        resultElement.innerHTML = createExpandableJsonDisplay(formattedJson)
        // 启用复制按钮
        copyButton.disabled = false
    } catch (e) {
        resultElement.innerHTML = '<span style="color: #dc3545;">JSON解析错误: ' + e.message + '</span>'
        copyButton.disabled = true
    }
}

// JSON压缩功能
function minifyJson() {
    const jsonInput = document.getElementById('json-input').value
    const resultElement = document.getElementById('json-result')
    const copyButton = document.getElementById('copy-button')
    
    if (!jsonInput.trim()) {
        resultElement.innerHTML = '<span style="color: #666;">请输入JSON字符串</span>'
        copyButton.disabled = true
        return
    }
    
    try {
        // 解析JSON
        const parsedJson = JSON.parse(jsonInput)
        // 压缩JSON，移除所有空格
        const minifiedJson = JSON.stringify(parsedJson)
        resultElement.innerHTML = '<pre style="margin: 0; white-space: pre-wrap; word-break: break-all;">' + 
                                 minifiedJson + '</pre>'
        // 启用复制按钮
        copyButton.disabled = false
    } catch (e) {
        resultElement.innerHTML = '<span style="color: #dc3545;">JSON解析错误: ' + e.message + '</span>'
        copyButton.disabled = true
    }
}

// 复制到剪贴板功能
function copyToClipboard() {
    const resultElement = document.getElementById('json-result')
    const copyButton = document.getElementById('copy-button')
    
    // 获取纯文本内容
    let textToCopy = ''
    
    if (resultElement.querySelector('.json-container')) {
        // 如果是格式化后的JSON，直接从原始格式化字符串获取
        // 由于HTML显示可能包含转义字符，我们需要更可靠的方法
        const jsonContainer = resultElement.querySelector('.json-container')
        const jsonLines = jsonContainer.querySelectorAll('.json-content')
        jsonLines.forEach(line => {
            // 使用innerText而不是textContent来获取可见文本
            textToCopy += line.innerText + '\n'
        })
    } else if (resultElement.querySelector('pre')) {
        // 如果是压缩后的JSON
        textToCopy = resultElement.querySelector('pre').textContent
    } else {
        // 其他内容
        textToCopy = resultElement.textContent
    }
    
    // 去除首尾空白
    textToCopy = textToCopy.trim()
    
    if (!textToCopy || textToCopy === '格式化结果将显示在这里') {
        showCopyStatus('没有内容可复制', false)
        return
    }
    
    // 使用Clipboard API复制文本
    if (navigator.clipboard && navigator.clipboard.writeText) {
        navigator.clipboard.writeText(textToCopy).then(() => {
            showCopyStatus('已复制到剪贴板！', true)
        }).catch(err => {
            console.error('Clipboard API error:', err)
            // 如果Clipboard API失败，使用备用方法
            fallbackCopyToClipboard(textToCopy)
        })
    } else {
        // 如果Clipboard API不可用，直接使用备用方法
        fallbackCopyToClipboard(textToCopy)
    }
}

// 备用复制方法（兼容旧浏览器）
function fallbackCopyToClipboard(text) {
    const textArea = document.createElement('textarea')
    textArea.value = text
    textArea.style.position = 'fixed'
    textArea.style.left = '-9999px'
    textArea.style.top = '0'
    textArea.style.opacity = '0'
    document.body.appendChild(textArea)
    
    try {
        textArea.select()
        textArea.setSelectionRange(0, 99999) // 对于移动设备
        
        const successful = document.execCommand('copy')
        document.body.removeChild(textArea)
        
        if (successful) {
            showCopyStatus('已复制到剪贴板！', true)
        } else {
            showCopyStatus('复制失败，请手动复制', false)
        }
    } catch (err) {
        document.body.removeChild(textArea)
        showCopyStatus('复制失败: ' + err.message, false)
    }
}

// 显示复制状态
function showCopyStatus(message, isSuccess) {
    const copyButton = document.getElementById('copy-button')
    const originalText = copyButton.textContent
    
    // 保存原始样式
    const originalBackground = copyButton.style.backgroundColor
    const originalBorder = copyButton.style.borderColor
    
    // 临时改变按钮样式
    copyButton.textContent = message
    copyButton.style.backgroundColor = isSuccess ? '#28a745' : '#dc3545'
    copyButton.style.borderColor = isSuccess ? '#28a745' : '#dc3545'
    copyButton.style.color = 'white'
    
    // 2秒后恢复原状
    setTimeout(() => {
        copyButton.textContent = originalText
        copyButton.style.backgroundColor = originalBackground
        copyButton.style.borderColor = originalBorder
        copyButton.style.color = ''
    }, 2000)
}

// 清空JSON输入
function clearJson() {
    document.getElementById('json-input').value = ''
    document.getElementById('json-result').innerHTML = '<span style="color: #666;">格式化结果将显示在这里</span>'
    document.getElementById('copy-button').disabled = true
}

// 创建可展开/收缩的JSON显示
function createExpandableJsonDisplay(jsonString) {
    // 将JSON字符串转换为HTML格式，添加展开/收缩功能
    let html = '<div class="json-container">'
    let indentLevel = 0
    const lines = jsonString.split('\n')
    
    lines.forEach((line, index) => {
        const trimmedLine = line.trim()
        
        if (trimmedLine.endsWith('{') || trimmedLine.endsWith('[')) {
            // 开始对象或数组
            html += createJsonLine(line, indentLevel, true, false)
            indentLevel++
        } else if (trimmedLine.endsWith('},') || trimmedLine.endsWith('],') || 
                  trimmedLine.endsWith('}') || trimmedLine.endsWith(']')) {
            // 结束对象或数组
            indentLevel--
            html += createJsonLine(line, indentLevel, false, true)
        } else {
            // 普通行
            html += createJsonLine(line, indentLevel, false, false)
        }
    })
    
    html += '</div>'
    return html
}

// 创建JSON行HTML
function createJsonLine(line, indentLevel, isStart, isEnd) {
    const indent = '  '.repeat(indentLevel)
    const trimmedLine = line.trim()
    let html = '<div class="json-line" style="margin-left: ' + (indentLevel * 20) + 'px;">'
    
    if (isStart) {
        // 可展开的行
        html += '<span class="json-toggle" onclick="toggleJson(this)">-</span>'
        html += '<span class="json-content">' + line + '</span>'
    } else if (isEnd) {
        // 结束行
        html += '<span class="json-content">' + line + '</span>'
    } else {
        // 普通行
        html += '<span class="json-content">' + line + '</span>'
    }
    
    html += '</div>'
    return html
}

// 切换JSON展开/收缩
function toggleJson(element) {
    const toggleSpan = element
    const jsonLine = toggleSpan.parentElement
    const nextSibling = jsonLine.nextElementSibling
    
    if (toggleSpan.textContent === '-') {
        // 当前是展开状态，要收缩
        toggleSpan.textContent = '+'
        let currentLine = nextSibling
        let indentLevel = parseInt(jsonLine.style.marginLeft || 0) / 20
        
        while (currentLine) {
            const currentIndent = parseInt(currentLine.style.marginLeft || 0) / 20
            if (currentIndent > indentLevel) {
                currentLine.style.display = 'none'
                currentLine = currentLine.nextElementSibling
            } else {
                break
            }
        }
    } else {
        // 当前是收缩状态，要展开
        toggleSpan.textContent = '-'
        let currentLine = nextSibling
        let indentLevel = parseInt(jsonLine.style.marginLeft || 0) / 20
        
        while (currentLine) {
            const currentIndent = parseInt(currentLine.style.marginLeft || 0) / 20
            if (currentIndent > indentLevel) {
                currentLine.style.display = 'flex'
                currentLine = currentLine.nextElementSibling
            } else {
                break
            }
        }
    }
}

// 页面加载完成后初始化
document.addEventListener('DOMContentLoaded', function() {
    // 确保欢迎页面是默认显示的
    const welcomeSection = document.getElementById('welcome')
    if (welcomeSection) {
        welcomeSection.classList.add('active')
        console.log('页面加载完成，默认显示欢迎页面')
    }
})